/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Date;
import javax.swing.JOptionPane;
 
/**
 *
 * @author avbravo
 */
public class PagosAnualesBeans {

    static int Anio;
    static String Mes;
    static private String Id;
    static String TipoId;
    static String IdRegimen;
    static int IdRecibo;
    static String Activo;
    static String Pagado;
    static String IdMunicipio;
    static String IdUsuario;
    static Date Fecha;

    Sesion sesion;
static Double Morosidad;

    public static Double getMorosidad() {
        return Morosidad;
    }

    public static void setMorosidad(Double Morosidad) {
        PagosAnualesBeans.Morosidad = Morosidad;
    }


    public PagosAnualesBeans() {
        sesion = new Sesion();
    }

    public static String getActivo() {
        return Activo;
    }

    public static void setActivo(String Activo) {
        PagosAnualesBeans.Activo = Activo;
    }

    public static int getAnio() {
        return Anio;
    }

    public static void setAnio(int Anio) {
        PagosAnualesBeans.Anio = Anio;
    }

    public static Date getFecha() {
        return Fecha;
    }

    public static void setFecha(Date Fecha) {
        PagosAnualesBeans.Fecha = Fecha;
    }

    public static String getId() {
        return Id;
    }

    public static void setId(String Id) {
        PagosAnualesBeans.Id = Id;
    }

    public static String getIdMunicipio() {
        return IdMunicipio;
    }

    public static void setIdMunicipio(String IdMunicipio) {
        PagosAnualesBeans.IdMunicipio = IdMunicipio;
    }

    public static int getIdRecibo() {
        return IdRecibo;
    }

    public static void setIdRecibo(int IdRecibo) {
        PagosAnualesBeans.IdRecibo = IdRecibo;
    }

    public static String getIdRegimen() {
        return IdRegimen;
    }

    public static void setIdRegimen(String IdRegimen) {
        PagosAnualesBeans.IdRegimen = IdRegimen;
    }

    public static String getIdUsuario() {
        return IdUsuario;
    }

    public static void setIdUsuario(String IdUsuario) {
        PagosAnualesBeans.IdUsuario = IdUsuario;
    }

    public static String getMes() {
        return Mes;
    }

    public static void setMes(String Mes) {
        PagosAnualesBeans.Mes = Mes;
    }

    public static String getPagado() {
        return Pagado;
    }

    public static void setPagado(String Pagado) {
        PagosAnualesBeans.Pagado = Pagado;
    }

    public static String getTipoId() {
        return TipoId;
    }

    public static void setTipoId(String TipoId) {
        PagosAnualesBeans.TipoId = TipoId;
    }

    /*
     *  VerificarPago Anual, que correspondia al mes
     * Verifica si se pago en el mes que le corresponde
     * si encuentra un registro ese mes y no pago devuelve true
     * si pago o no no lo encuentra pago devuelve false
     */


        public boolean VerificarNoPagoAnualEsteMes() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "' and mes='" + this.Mes + "' and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' or pagado= null";

            PreparedStatement psquery = sesion.con.prepareStatement(sql);

            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();

            if (x != 0) {
                sesion.con.close();
                return true;

            } else {
                sesion.con.close();
                return false;
            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "PagosAnualesBeans.VerificarPagoMensual()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean VerificarNoPagoAnual() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "' and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' or pagado= null";

            PreparedStatement psquery = sesion.con.prepareStatement(sql);

            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();

            if (x != 0) {
                sesion.con.close();
                return true;

            } else {
                sesion.con.close();
                return false;
            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "PagosAnualesBeans.VerificarPagoMensual()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean VerificarPagoAnual() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='si' ";

            PreparedStatement psquery = sesion.con.prepareStatement(sql);

            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();

            if (x != 0) {
                sesion.con.close();
                return true;

            } else {
                sesion.con.close();
                return false;
            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "PagosAnualesBeans.VerificarPagoMensual()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
    

        public void ActualizarAnioAnulado() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return;
            }
            String sql = "update pagosanuales set idrecibo=0 , pagado='no' where idmunicipio=?  and idrecibo=? and activo='si'";
            PreparedStatement prest = sesion.con.prepareStatement(sql);
            prest.setString(1, getIdMunicipio());
            prest.setInt(2, getIdRecibo());

            int count = prest.executeUpdate();
            sesion.con.close();

        } catch (Exception ex) {
            sesion.MostrarMensajeError("Error ", "Clase: PagosMensualesBeans.java\nActualizarMesAnulado()\n " + ex.getMessage().toString());
        }
        return;
    }

    public boolean VerificarNoPagoAnualCierreMensual() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            this.Mes = this.Mes.toLowerCase();
            this.Mes = this.Mes.trim();

            String sql = "";
            //= "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio +"'  and id='" + this.Id+"' and tipoid ='"+ this.TipoId +"' and idregimen='" + this.IdRegimen +"' and activo='si' and pagado='si' ";
            if (this.Mes.equals("enero")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' and mes='" + this.Mes + "'";
            }
            if (this.Mes.equals("febrero")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero')";
            }

            if (this.Mes.equals("marzo")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo')";
            }

            if (this.Mes.equals("abril")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril')";
            }

            if (this.Mes.equals("mayo")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo')";
            }

            if (this.Mes.equals("junio")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo' or mes='junio')";
            }

            if (this.Mes.equals("julio")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo' or mes='junio' or mes='julio')";
            }

            if (this.Mes.equals("agosto")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo' or mes='junio' or mes='julio' or mes='agosto')";
            }

            if (this.Mes.equals("septiembre")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo' or mes='junio' or mes='julio' or mes='agosto' or mes='septiembre')";
            }

            if (this.Mes.equals("octubre")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo' or mes='junio' or mes='julio' or mes='agosto' or mes='septiembre' or mes='octubre')";
            }
            if (this.Mes.equals("noviembre")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo' or mes='junio' or mes='julio' or mes='agosto' or mes='septiembre' or mes='octubre' or mes='noviembre')";
            }
            if (this.Mes.equals("diciembre")) {
                sql = "select * from pagosanuales where idmunicipio='" + this.IdMunicipio + "' and anio ='" + this.Anio + "'  and id='" + this.Id + "' and tipoid ='" + this.TipoId + "' and idregimen='" + this.IdRegimen + "' and activo='si' and pagado='no' "
                        + " and (mes='enero' or mes='febrero' or mes='marzo' or mes='abril' or mes='mayo' or mes='junio' or mes='julio' or mes='agosto' or mes='septiembre' or mes='octubre' or mes='noviembre' or mes='diciembre')";
            }


            PreparedStatement psquery = sesion.con.prepareStatement(sql);

            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();

            if (x != 0) {
                sesion.con.close();
                return true;

            } else {
                sesion.con.close();
                return false;
            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "PagosAnualesBeans.VerificarPagoMensual()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }




    public boolean AgregarCierre() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "INSERT into cierremorosidadmensualanual  VALUES(?,?,?,?,?,?,?)";
            PreparedStatement prest = sesion.con.prepareStatement(sql);

            prest.setInt(1, getAnio());
            prest.setString(2, getMes());
            prest.setString(3, getId());
            prest.setString(4, getTipoId());
            prest.setString(5, getIdRegimen());
            prest.setDouble(6, getMorosidad());
            prest.setString(7, sesion.getIdmunicipio());


            int count = prest.executeUpdate();

            sesion.con.close();
            //JOptionPane.showMessageDialog(null, "Cierre Mensual guardado exitosamente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
            return true;

        } catch (Exception ex) {
            System.out.println("Error" + ex);
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "MorosidadMensualBeans.AgregarCierre() ", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
}
